Software applications that interact with a user typically utilize a user interface. The design of the user interface is important since it serves as a bridge between the user and the application. A user's view of the application is based on the user's experience with the user interface. A good user interface should be easy to learn and use thereby providing the user with a positive experience. Most user interfaces are configured with assets, such as icons, buttons, graphic objects, menus, toolbars, dialog boxes, screens, windows, glyphs, etc. that are useful in making the user's interaction with the application a positive and productive experience.
A software application may generate different user interfaces for different uses. The application may employ a theme to generate a customized user interface. A theme specifies a style that includes specific colors, fonts, and graphics that are used in the user interface. A theme may be associated with the colors, fonts, and graphic objects that are employed by a particular organization or which suit a user's preference. An application may store assets pre-configured for each theme which may amount to thousands of assets. A large amount of assets increases the size of the application and the time needed to install the application in a user's computing device which makes the software application less viable for some users.